package com.cdp.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.cdp.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 耐久性能实体类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("sys_durability_performance")
public class SysDurabilityPerformance extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 耐久性能 ID
     */
    @TableId(value = "durability_id", type = IdType.AUTO)
    private Integer durabilityId;

    /**
     * 抗冻等级
     */
    @TableField("freeze_resistance_level")
    private Integer freezeResistanceLevel;

    /**
     * 抗渗等级
     */
    @TableField("impermeability_level")
    private Integer impermeabilityLevel;

    /**
     * 碳化深度（mm）
     */
    @TableField("carbonation_depth")
    private Float carbonationDepth;

    /**
     * 地区
     */
    @TableField("region_name")
    private Integer regionName;


    @TableField(exist = false) // 表示此字段不在数据库表中
    private String regionNameStr;

    /**
     * 水用量（kg/m³）
     */
    @TableField("water_content")
    private Float waterContent;

    /**
     * 水泥 ID
     */
    @TableField("cement_id")
    private Integer cementId;

    /**
     * 水泥用量（kg/m³）
     */
    @TableField("cement_content")
    private Float cementContent;

    /**
     * 粉煤灰用量（kg/m³）
     */
    @TableField("fly_ash_content")
    private Float flyAshContent;

    /**
     * 砂 ID
     */
    @TableField("sand_id")
    private Integer sandId;

    /**
     * 砂用量（kg/m³）
     */
    @TableField("sand_content")
    private Float sandContent;

    /**
     * 石类型 ID
     */
    @TableField("stone_id")
    private Integer stoneId;

    /**
     * 石用量（kg/m³）
     */
    @TableField("stone_content")
    private Float stoneContent;

    /**
     * 减水剂 ID
     */
    @TableField("reducer_id")
    private Integer reducerId;

    /**
     * 减水剂掺量（%）
     */
    @TableField("water_reducer_dosage")
    private BigDecimal waterReducerDosage;

    /**
     * 增效剂 ID
     */
    @TableField("agent_id")
    private Integer agentId;

    /**
     * 增效剂掺量（%）
     */
    @TableField("efficiency_agent_dosage")
    private Float efficiencyAgentDosage;

    /**
     * 唯一标识符 ID
     */
    @TableField("id")
    private String id;

    /**
     * 版本号
     */
    @Version
    @TableField("version")
    private Integer version;

    /**
     * 软删除时间
     */
    @TableField("delete_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deleteTime;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;




    @JsonProperty("powder_id")
    private String powderId;    // 矿粉


    @JsonProperty("admixtures_id")
    private String admixturesId;  // 其他
    @JsonProperty("swellingagent_id")
    private Integer swellingagentId;//膨胀剂
    @JsonProperty("waterId")
    private Long waterId;






    @TableField("water_dosage")
    private BigDecimal  waterDosage;  //水掺量（%）
    @TableField("powder_dosage")
    private BigDecimal   powderDosage;  //矿粉掺量
    @TableField("admixtures_dosage")
    private BigDecimal admixturesDosage; // 其他参合料掺量
    @TableField("swellingagent_dosage")
    private BigDecimal swellingagentDosage; //膨胀剂



}
